package autotest_util

import (
	web_constants "app/app_src/framework/constant/web"
	"net/http"
	"net/url"
	"strings"
)

// 创建请求对象
func NewGetRequest(urlStr string, obj any) *http.Request {
	finalUrl := urlStr
	// 转换成 URL 参数
	urlParams := ConvertObjToUrlParams(obj)

	if urlParams != "" {
		var err error
		// 拼接 URL 字符串
		finalUrl, err = url.JoinPath(finalUrl, urlParams)

		if err != nil {
			panic(err)
		}
	}

	// 创建请求对象
	req, err := http.NewRequest(web_constants.REQUEST_METHOD_GET, finalUrl, nil)
	if err != nil {
		panic(err)
	}

	return req
}

// 创建请求对象
func NewJsonRequest(urlStr string, obj any) *http.Request {
	jsonStr := ConvertObjToJsonString(obj)
	body := strings.NewReader(jsonStr)

	// 创建请求对象
	req, err := http.NewRequest(web_constants.REQUEST_METHOD_POST, urlStr, body)
	if err != nil {
		panic(err)
	}

	// 设置请求头
	req.Header.Set(web_constants.HEADER_CONTENT_TYPE, web_constants.REQUEST_HEADER_CONTENT_TYPE_JSON)

	return req
}
